第5回 画像の切り抜き
CDSEから取得したSentinel-2のラスタ画像を、そのままAIMMearthに掲載するわけではありません。
市区町村単位で画像を作るため、市区町村境界のベクタデータを利用してラスタ画像を切り抜きます。
基本的な構造は、Sentinel-2のラスタ画像に、市区町村境界のベクタデータを重ね、QGISで境界に沿って切り抜くというものです。
この処理ではPyQGISをかなり利用しました。
制作初期には、まだ処理方法に慣れていなかったため、市区町村を一つずつ指定して切り抜いていました。
しかし全国分をこの方法で処理すると非常に時間がかかります。
何度も処理しているうちに、結局やっていることは毎回ほぼ同じであることが分かりました。
そこで処理をPythonスクリプト化し、最初は数市区町村、次第に数十市区町村、最終的には一つの都道府県単位でまとめて処理するようになりました。
後半になると、基本的には同じスクリプトを使用し、都道府県名や入力条件だけを変更すれば次の地域を処理できるようになりました。
この段階まで来ると画像制作速度はかなり向上しました。
重要だったのはPythonそのものだけではありません。ファイル配置、入力データ、CRS、出力名などの条件を標準化し、繰り返し作業を自動化できる状態にしたことです。
またQGISでは通常のPythonに加えてPyQGISというQGIS固有のAPIを使用します。Pythonの文法は同じでも、レイヤー、CRS、ラスタ、ベクタ、Processingなどを操作するQGIS独自の使い方は別に覚える必要がありました。
関連技術・キーワード:QGIS / PyQGIS / Python / Raster / Vector / Clip / 市区町村境界 / Processing / GeoTIFF / 一括処理

